﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Coolite.Ext.Web;
using QFD.Controller;

namespace QFD.View.RequisitoProjeto
{
    public partial class grdRequisitoProjeto : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            #region  //Carrega Grid com todos componentes
            using (QFDDataContext context = new QFDDataContext())
            {
                var selectRequisitoProjeto =  from requisitoProjeto in context.GetTable<REQPROJETO>()
                                              from projeto in context.GetTable<PROJETO>()
                                              from meta in context.GetTable<META>()
                                              from requisito in context.GetTable<REQUISITO>()
                                              from requisitoPai in context.GetTable<REQUISITO>()
                                              where (requisitoProjeto.CDMETA == meta.CDMETA && requisitoProjeto.CDREQUISITO == requisito.CDREQUISITO && requisito.CDREQUISITO == requisitoPai.CDREQUISITO)
                                              select new
                                              {
                                                  requisitoProjeto.CDREQPROJETO,
                                                  requisitoProjeto.VLCOMTELHADO,
                                                  requisitoProjeto.VLSEMTELHADO,
                                                  requisitoProjeto.REQPAI,
                                                  projeto.NMPROJETO,
                                                  meta.DSMETA,
                                                  requisito.DSREQUISITO,
                                                  requisito.CDREQUISITO,
                                                  CDPAI = requisitoPai.CDREQUISITO,
                                                  DESPAI = requisitoPai.DSREQUISITO,
                                              };
                var lista = selectRequisitoProjeto.ToList();

                if (!Ext.IsAjaxRequest)
                {
                    this.StoreRequisitoProjeto.DataSource = selectRequisitoProjeto;
                    this.StoreRequisitoProjeto.DataBind();
                }
            }
            #endregion
        }

        public void EditarRequisitoProjeto(object sender, AjaxEventArgs e)
        {
            string id = e.ExtraParams["id"];
            this.uc8.setRequisitoProjeto(ControllerRequisitoProjeto.getByRequisitoProjeto(int.Parse(id)));
            this.uc8.ShowRequisitoProjeto();
        }

        public void deleteRequisitoProjeto(object sender, AjaxEventArgs e)
        {
            string id = e.ExtraParams["id"];
            REQPROJETO requisitoprojeto = ControllerRequisitoProjeto.getByRequisitoProjeto(int.Parse(id));
            ControllerRequisitoProjeto.deleteRequisitoProjeto(requisitoprojeto);
            this.GridStore.AddScript(string.Format("{0}.reload();", this.GridStore.ClientID));
            Ext.Msg.Alert("Alerta!", "Requisito de projeto <b>" + requisitoprojeto.CDREQPROJETO + "</b> excluído com sucesso!").Show();
        }

        protected void Refresh(object sender, StoreRefreshDataEventArgs e)
        {
            #region  //Carrega Grid com todos componentes
            using (QFDDataContext context = new QFDDataContext())
            {
                var selectRequisitoProjeto = from requisitoProjeto in context.GetTable<REQPROJETO>()
                                             from projeto in context.GetTable<PROJETO>()
                                             from meta in context.GetTable<META>()
                                             from requisito in context.GetTable<REQUISITO>()
                                             where (requisitoProjeto.CDMETA == meta.CDMETA && requisitoProjeto.CDREQUISITO == requisito.CDREQUISITO)
                                             select new
                                             {
                                                 requisitoProjeto.CDREQPROJETO,
                                                 requisitoProjeto.VLCOMTELHADO,
                                                 requisitoProjeto.VLSEMTELHADO,
                                                 requisitoProjeto.REQPAI,
                                                 projeto.NMPROJETO,
                                                 meta.DSMETA,
                                             };
                var lista = selectRequisitoProjeto.ToList();
                this.StoreRequisitoProjeto.DataSource = selectRequisitoProjeto;
                this.StoreRequisitoProjeto.DataBind();
            }
            
            #endregion
        }

        public Store GridStore
        {
            get;
            set;
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            this.uc8.GridStore = this.StoreRequisitoProjeto;
            this.GridStore = this.StoreRequisitoProjeto;
        }
    }
}